return;
}
+ /* skip magic mime types */
+ if (g_str_equal (type, GDK_WAYLAND_LOCAL_DND_MIME_TYPE))
+ return;
+
gdk_content_formats_builder_add_mime_type (seat->pending_builder, type);
}
g_message ("create data source, mime types=%s", s);
g_free (s);});
+ wl_data_source_offer (drag_wayland->data_source, GDK_WAYLAND_LOCAL_DND_MIME_TYPE);
for (i = 0; i < n_mimetypes; i++)
wl_data_source_offer (drag_wayland->data_source, mimetypes[i]);
const char *const *mimetypes;
gsize i, n_mimetypes;
+ /* This is a local drag, treat it like that */
+ if (gdk_drop_get_drag (GDK_DROP (drop_wayland)))
+ {
+ wl_data_offer_accept (drop_wayland->offer, drop_wayland->serial, GDK_WAYLAND_LOCAL_DND_MIME_TYPE);
+ return;
+ }
+
mimetypes = gdk_content_formats_get_mime_types (gdk_drop_get_formats (GDK_DROP (drop_wayland)), &n_mimetypes);
for (i = 0; i < n_mimetypes; i++)
{
#define WL_SURFACE_HAS_BUFFER_SCALE 3
#define WL_POINTER_HAS_FRAME 5
+/* the magic mime type we use for local DND operations.
+ * We offer it to every dnd operation, but will strip it out on the drop
+ * site unless we can prove it's a local DND - then we will use only
+ * this type
+ */
+#define GDK_WAYLAND_LOCAL_DND_MIME_TYPE "application/x-gtk-local-dnd"
+
GdkKeymap *_gdk_wayland_keymap_new (GdkDisplay *display);
void _gdk_wayland_keymap_update_from_fd (GdkKeymap *keymap,
uint32_t format,